package com.qiaoba.api.auth.service;

/**
 * 安全配置 对外暴露接口
 *
 * @author ailanyin
 * @version 1.0
 * @since 2023/5/19 17:17
 */
public interface AuthConfigApiService {

    /**
     * 是否允许账号同时在线
     *
     * @return 是/否
     */
    Boolean checkAllowBothOnline();

    /**
     * 是否开启验证码
     *
     * @return 是/否
     */
    Boolean getCaptchaConfig();

    /**
     * 是否开启注册
     *
     * @return 是/否
     */
    Boolean getRegisterConfig();

    /**
     * 是否开启演示模式
     *
     * @return 是/否
     */
    Boolean getDemoModeConfig();

    /**
     * 是否开启登陆成功日志
     *
     * @return 是/否
     */
    Boolean getLoginSuccessLogConfig();

    /**
     * 是否开启登陆失败日志
     *
     * @return 是/否
     */
    Boolean getLoginFailLogConfig();

    /**
     * 是否开启黑名单
     *
     * @return 是/否
     */
    Boolean getBlacklistConfig();

    /**
     * 黑名单过期时间(拉黑时间), 单位：秒
     *
     * @return 过期时间
     */
    Long getBlacklistExpireTime();

    /**
     * 获取最大允许错误次数
     *
     * @return 最大允许错误次数
     */
    Integer getAllowMaxErrorCount();

    /**
     * 验证验证码
     *
     * @param code result
     * @param uuid uuid
     */
    void validateCaptcha(String code, String uuid);

    /**
     * 获取Token有效期 单位秒
     *
     * @return Token有效期
     */
    Integer getTokenExpireTime();

}
